// $ANTLR 3.1 src/Fibitos.g 2008-09-26 12:24:30

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class FibitosLexer extends Lexer {
    public static final int DoubleTypeSuffix=10;
    public static final int LT=31;
    public static final int MOD=38;
    public static final int LBRACE=24;
    public static final int GTE=32;
    public static final int Exponent=9;
    public static final int DOTDOT=26;
    public static final int EQUALS=21;
    public static final int EOF=-1;
    public static final int NOT_EQUALS=29;
    public static final int LTE=30;
    public static final int LPAREN=27;
    public static final int LBRACKET=22;
    public static final int RPAREN=28;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int COMMA=20;
    public static final int IDENT=15;
    public static final int PLUS=34;
    public static final int RBRACKET=23;
    public static final int COMMENT=4;
    public static final int DOT=16;
    public static final int T__50=50;
    public static final int STRINGLIT=13;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int DOUBLELIT=11;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int RBRACE=25;
    public static final int T__45=45;
    public static final int LINE_COMMENT=5;
    public static final int IntegerTypeSuffix=7;
    public static final int CLASS_IDENT=14;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int CHARLIT=12;
    public static final int MINUS=35;
    public static final int SEMI=19;
    public static final int COLON=18;
    public static final int WS=6;
    public static final int INTLIT=8;
    public static final int T__39=39;
    public static final int ASSIGN=17;
    public static final int GT=33;
    public static final int DIV=37;
    public static final int TIMES=36;

    // delegates
    // delegators

    public FibitosLexer() {;} 
    public FibitosLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public FibitosLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "src/Fibitos.g"; }

    // $ANTLR start "T__39"
    public final void mT__39() throws RecognitionException {
        try {
            int _type = T__39;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:3:7: ( 'class' )
            // src/Fibitos.g:3:9: 'class'
            {
            match("class"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__39"

    // $ANTLR start "T__40"
    public final void mT__40() throws RecognitionException {
        try {
            int _type = T__40;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:4:7: ( 'int' )
            // src/Fibitos.g:4:9: 'int'
            {
            match("int"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__40"

    // $ANTLR start "T__41"
    public final void mT__41() throws RecognitionException {
        try {
            int _type = T__41;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:5:7: ( 'double' )
            // src/Fibitos.g:5:9: 'double'
            {
            match("double"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__41"

    // $ANTLR start "T__42"
    public final void mT__42() throws RecognitionException {
        try {
            int _type = T__42;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:6:7: ( 'char' )
            // src/Fibitos.g:6:9: 'char'
            {
            match("char"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__42"

    // $ANTLR start "T__43"
    public final void mT__43() throws RecognitionException {
        try {
            int _type = T__43;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:7:7: ( 'bool' )
            // src/Fibitos.g:7:9: 'bool'
            {
            match("bool"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__43"

    // $ANTLR start "T__44"
    public final void mT__44() throws RecognitionException {
        try {
            int _type = T__44;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:8:7: ( 'string' )
            // src/Fibitos.g:8:9: 'string'
            {
            match("string"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__44"

    // $ANTLR start "T__45"
    public final void mT__45() throws RecognitionException {
        try {
            int _type = T__45;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:9:7: ( 'if' )
            // src/Fibitos.g:9:9: 'if'
            {
            match("if"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__45"

    // $ANTLR start "T__46"
    public final void mT__46() throws RecognitionException {
        try {
            int _type = T__46;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:10:7: ( 'else' )
            // src/Fibitos.g:10:9: 'else'
            {
            match("else"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__46"

    // $ANTLR start "T__47"
    public final void mT__47() throws RecognitionException {
        try {
            int _type = T__47;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:11:7: ( 'while' )
            // src/Fibitos.g:11:9: 'while'
            {
            match("while"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__47"

    // $ANTLR start "T__48"
    public final void mT__48() throws RecognitionException {
        try {
            int _type = T__48;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:12:7: ( 'return' )
            // src/Fibitos.g:12:9: 'return'
            {
            match("return"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__48"

    // $ANTLR start "T__49"
    public final void mT__49() throws RecognitionException {
        try {
            int _type = T__49;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:13:7: ( '||' )
            // src/Fibitos.g:13:9: '||'
            {
            match("||"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__49"

    // $ANTLR start "T__50"
    public final void mT__50() throws RecognitionException {
        try {
            int _type = T__50;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:14:7: ( '&&' )
            // src/Fibitos.g:14:9: '&&'
            {
            match("&&"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__50"

    // $ANTLR start "T__51"
    public final void mT__51() throws RecognitionException {
        try {
            int _type = T__51;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:15:7: ( '!' )
            // src/Fibitos.g:15:9: '!'
            {
            match('!'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__51"

    // $ANTLR start "T__52"
    public final void mT__52() throws RecognitionException {
        try {
            int _type = T__52;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:16:7: ( 'new' )
            // src/Fibitos.g:16:9: 'new'
            {
            match("new"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__52"

    // $ANTLR start "T__53"
    public final void mT__53() throws RecognitionException {
        try {
            int _type = T__53;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:17:7: ( 'true' )
            // src/Fibitos.g:17:9: 'true'
            {
            match("true"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__53"

    // $ANTLR start "T__54"
    public final void mT__54() throws RecognitionException {
        try {
            int _type = T__54;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:18:7: ( 'false' )
            // src/Fibitos.g:18:9: 'false'
            {
            match("false"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__54"

    // $ANTLR start "COMMENT"
    public final void mCOMMENT() throws RecognitionException {
        try {
            int _type = COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:51:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
            // src/Fibitos.g:51:9: '/*' ( options {greedy=false; } : . )* '*/'
            {
            match("/*"); 

            // src/Fibitos.g:51:14: ( options {greedy=false; } : . )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0=='*') ) {
                    int LA1_1 = input.LA(2);

                    if ( (LA1_1=='/') ) {
                        alt1=2;
                    }
                    else if ( ((LA1_1>='\u0000' && LA1_1<='.')||(LA1_1>='0' && LA1_1<='\uFFFE')) ) {
                        alt1=1;
                    }


                }
                else if ( ((LA1_0>='\u0000' && LA1_0<=')')||(LA1_0>='+' && LA1_0<='\uFFFE')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // src/Fibitos.g:51:42: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            match("*/"); 

            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMMENT"

    // $ANTLR start "LINE_COMMENT"
    public final void mLINE_COMMENT() throws RecognitionException {
        try {
            int _type = LINE_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:55:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
            // src/Fibitos.g:55:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
            {
            match("//"); 

            // src/Fibitos.g:55:12: (~ ( '\\n' | '\\r' ) )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>='\u0000' && LA2_0<='\t')||(LA2_0>='\u000B' && LA2_0<='\f')||(LA2_0>='\u000E' && LA2_0<='\uFFFE')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // src/Fibitos.g:55:12: ~ ( '\\n' | '\\r' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);

            // src/Fibitos.g:55:26: ( '\\r' )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0=='\r') ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // src/Fibitos.g:55:26: '\\r'
                    {
                    match('\r'); 

                    }
                    break;

            }

            match('\n'); 
            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LINE_COMMENT"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:58:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
            // src/Fibitos.g:58:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
            {
            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WS"

    // $ANTLR start "INTLIT"
    public final void mINTLIT() throws RecognitionException {
        try {
            int _type = INTLIT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:62:2: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )? )
            // src/Fibitos.g:62:4: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )?
            {
            // src/Fibitos.g:62:4: ( '0' | '1' .. '9' ( '0' .. '9' )* )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0=='0') ) {
                alt5=1;
            }
            else if ( ((LA5_0>='1' && LA5_0<='9')) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // src/Fibitos.g:62:5: '0'
                    {
                    match('0'); 

                    }
                    break;
                case 2 :
                    // src/Fibitos.g:62:11: '1' .. '9' ( '0' .. '9' )*
                    {
                    matchRange('1','9'); 
                    // src/Fibitos.g:62:20: ( '0' .. '9' )*
                    loop4:
                    do {
                        int alt4=2;
                        int LA4_0 = input.LA(1);

                        if ( ((LA4_0>='0' && LA4_0<='9')) ) {
                            alt4=1;
                        }


                        switch (alt4) {
                    	case 1 :
                    	    // src/Fibitos.g:62:20: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    break loop4;
                        }
                    } while (true);


                    }
                    break;

            }

            // src/Fibitos.g:62:31: ( IntegerTypeSuffix )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='L'||LA6_0=='l') ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // src/Fibitos.g:62:31: IntegerTypeSuffix
                    {
                    mIntegerTypeSuffix(); 

                    }
                    break;

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "INTLIT"

    // $ANTLR start "IntegerTypeSuffix"
    public final void mIntegerTypeSuffix() throws RecognitionException {
        try {
            // src/Fibitos.g:65:19: ( ( 'l' | 'L' ) )
            // src/Fibitos.g:65:21: ( 'l' | 'L' )
            {
            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "IntegerTypeSuffix"

    // $ANTLR start "DOUBLELIT"
    public final void mDOUBLELIT() throws RecognitionException {
        try {
            int _type = DOUBLELIT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:68:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( DoubleTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( DoubleTypeSuffix )? | ( '0' .. '9' )+ Exponent ( DoubleTypeSuffix )? | ( '0' .. '9' )+ DoubleTypeSuffix )
            int alt17=4;
            alt17 = dfa17.predict(input);
            switch (alt17) {
                case 1 :
                    // src/Fibitos.g:68:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( DoubleTypeSuffix )?
                    {
                    // src/Fibitos.g:68:9: ( '0' .. '9' )+
                    int cnt7=0;
                    loop7:
                    do {
                        int alt7=2;
                        int LA7_0 = input.LA(1);

                        if ( ((LA7_0>='0' && LA7_0<='9')) ) {
                            alt7=1;
                        }


                        switch (alt7) {
                    	case 1 :
                    	    // src/Fibitos.g:68:10: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt7 >= 1 ) break loop7;
                                EarlyExitException eee =
                                    new EarlyExitException(7, input);
                                throw eee;
                        }
                        cnt7++;
                    } while (true);

                    match('.'); 
                    // src/Fibitos.g:68:25: ( '0' .. '9' )*
                    loop8:
                    do {
                        int alt8=2;
                        int LA8_0 = input.LA(1);

                        if ( ((LA8_0>='0' && LA8_0<='9')) ) {
                            alt8=1;
                        }


                        switch (alt8) {
                    	case 1 :
                    	    // src/Fibitos.g:68:26: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    break loop8;
                        }
                    } while (true);

                    // src/Fibitos.g:68:37: ( Exponent )?
                    int alt9=2;
                    int LA9_0 = input.LA(1);

                    if ( (LA9_0=='E'||LA9_0=='e') ) {
                        alt9=1;
                    }
                    switch (alt9) {
                        case 1 :
                            // src/Fibitos.g:68:37: Exponent
                            {
                            mExponent(); 

                            }
                            break;

                    }

                    // src/Fibitos.g:68:47: ( DoubleTypeSuffix )?
                    int alt10=2;
                    int LA10_0 = input.LA(1);

                    if ( (LA10_0=='D'||LA10_0=='F'||LA10_0=='d'||LA10_0=='f') ) {
                        alt10=1;
                    }
                    switch (alt10) {
                        case 1 :
                            // src/Fibitos.g:68:47: DoubleTypeSuffix
                            {
                            mDoubleTypeSuffix(); 

                            }
                            break;

                    }


                    }
                    break;
                case 2 :
                    // src/Fibitos.g:69:9: '.' ( '0' .. '9' )+ ( Exponent )? ( DoubleTypeSuffix )?
                    {
                    match('.'); 
                    // src/Fibitos.g:69:13: ( '0' .. '9' )+
                    int cnt11=0;
                    loop11:
                    do {
                        int alt11=2;
                        int LA11_0 = input.LA(1);

                        if ( ((LA11_0>='0' && LA11_0<='9')) ) {
                            alt11=1;
                        }


                        switch (alt11) {
                    	case 1 :
                    	    // src/Fibitos.g:69:14: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt11 >= 1 ) break loop11;
                                EarlyExitException eee =
                                    new EarlyExitException(11, input);
                                throw eee;
                        }
                        cnt11++;
                    } while (true);

                    // src/Fibitos.g:69:25: ( Exponent )?
                    int alt12=2;
                    int LA12_0 = input.LA(1);

                    if ( (LA12_0=='E'||LA12_0=='e') ) {
                        alt12=1;
                    }
                    switch (alt12) {
                        case 1 :
                            // src/Fibitos.g:69:25: Exponent
                            {
                            mExponent(); 

                            }
                            break;

                    }

                    // src/Fibitos.g:69:35: ( DoubleTypeSuffix )?
                    int alt13=2;
                    int LA13_0 = input.LA(1);

                    if ( (LA13_0=='D'||LA13_0=='F'||LA13_0=='d'||LA13_0=='f') ) {
                        alt13=1;
                    }
                    switch (alt13) {
                        case 1 :
                            // src/Fibitos.g:69:35: DoubleTypeSuffix
                            {
                            mDoubleTypeSuffix(); 

                            }
                            break;

                    }


                    }
                    break;
                case 3 :
                    // src/Fibitos.g:70:9: ( '0' .. '9' )+ Exponent ( DoubleTypeSuffix )?
                    {
                    // src/Fibitos.g:70:9: ( '0' .. '9' )+
                    int cnt14=0;
                    loop14:
                    do {
                        int alt14=2;
                        int LA14_0 = input.LA(1);

                        if ( ((LA14_0>='0' && LA14_0<='9')) ) {
                            alt14=1;
                        }


                        switch (alt14) {
                    	case 1 :
                    	    // src/Fibitos.g:70:10: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt14 >= 1 ) break loop14;
                                EarlyExitException eee =
                                    new EarlyExitException(14, input);
                                throw eee;
                        }
                        cnt14++;
                    } while (true);

                    mExponent(); 
                    // src/Fibitos.g:70:30: ( DoubleTypeSuffix )?
                    int alt15=2;
                    int LA15_0 = input.LA(1);

                    if ( (LA15_0=='D'||LA15_0=='F'||LA15_0=='d'||LA15_0=='f') ) {
                        alt15=1;
                    }
                    switch (alt15) {
                        case 1 :
                            // src/Fibitos.g:70:30: DoubleTypeSuffix
                            {
                            mDoubleTypeSuffix(); 

                            }
                            break;

                    }


                    }
                    break;
                case 4 :
                    // src/Fibitos.g:71:9: ( '0' .. '9' )+ DoubleTypeSuffix
                    {
                    // src/Fibitos.g:71:9: ( '0' .. '9' )+
                    int cnt16=0;
                    loop16:
                    do {
                        int alt16=2;
                        int LA16_0 = input.LA(1);

                        if ( ((LA16_0>='0' && LA16_0<='9')) ) {
                            alt16=1;
                        }


                        switch (alt16) {
                    	case 1 :
                    	    // src/Fibitos.g:71:10: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt16 >= 1 ) break loop16;
                                EarlyExitException eee =
                                    new EarlyExitException(16, input);
                                throw eee;
                        }
                        cnt16++;
                    } while (true);

                    mDoubleTypeSuffix(); 

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOUBLELIT"

    // $ANTLR start "Exponent"
    public final void mExponent() throws RecognitionException {
        try {
            // src/Fibitos.g:75:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
            // src/Fibitos.g:75:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
            {
            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // src/Fibitos.g:75:22: ( '+' | '-' )?
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0=='+'||LA18_0=='-') ) {
                alt18=1;
            }
            switch (alt18) {
                case 1 :
                    // src/Fibitos.g:
                    {
                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;

            }

            // src/Fibitos.g:75:33: ( '0' .. '9' )+
            int cnt19=0;
            loop19:
            do {
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( ((LA19_0>='0' && LA19_0<='9')) ) {
                    alt19=1;
                }


                switch (alt19) {
            	case 1 :
            	    // src/Fibitos.g:75:34: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt19 >= 1 ) break loop19;
                        EarlyExitException eee =
                            new EarlyExitException(19, input);
                        throw eee;
                }
                cnt19++;
            } while (true);


            }

        }
        finally {
        }
    }
    // $ANTLR end "Exponent"

    // $ANTLR start "DoubleTypeSuffix"
    public final void mDoubleTypeSuffix() throws RecognitionException {
        try {
            // src/Fibitos.g:78:18: ( ( 'f' | 'F' | 'd' | 'D' ) )
            // src/Fibitos.g:78:20: ( 'f' | 'F' | 'd' | 'D' )
            {
            if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='d'||input.LA(1)=='f' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "DoubleTypeSuffix"

    // $ANTLR start "CHARLIT"
    public final void mCHARLIT() throws RecognitionException {
        try {
            int _type = CHARLIT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:81:2: ( '\\'' . '\\'' )
            // src/Fibitos.g:81:4: '\\'' . '\\''
            {
            match('\''); 
            matchAny(); 
            match('\''); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CHARLIT"

    // $ANTLR start "STRINGLIT"
    public final void mSTRINGLIT() throws RecognitionException {
        try {
            int _type = STRINGLIT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:85:5: ( '\"' (~ '\"' )* '\"' )
            // src/Fibitos.g:85:8: '\"' (~ '\"' )* '\"'
            {
            match('\"'); 
            // src/Fibitos.g:85:12: (~ '\"' )*
            loop20:
            do {
                int alt20=2;
                int LA20_0 = input.LA(1);

                if ( ((LA20_0>='\u0000' && LA20_0<='!')||(LA20_0>='#' && LA20_0<='\uFFFE')) ) {
                    alt20=1;
                }


                switch (alt20) {
            	case 1 :
            	    // src/Fibitos.g:85:14: ~ '\"'
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop20;
                }
            } while (true);

            match('\"'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "STRINGLIT"

    // $ANTLR start "CLASS_IDENT"
    public final void mCLASS_IDENT() throws RecognitionException {
        try {
            int _type = CLASS_IDENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:90:2: ( 'A' .. 'Z' ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
            // src/Fibitos.g:90:4: 'A' .. 'Z' ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
            {
            matchRange('A','Z'); 
            // src/Fibitos.g:90:13: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( ((LA21_0>='0' && LA21_0<='9')||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='a' && LA21_0<='z')) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // src/Fibitos.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop21;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CLASS_IDENT"

    // $ANTLR start "IDENT"
    public final void mIDENT() throws RecognitionException {
        try {
            int _type = IDENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:95:2: ( ( 'a' .. 'z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
            // src/Fibitos.g:95:4: ( 'a' .. 'z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
            {
            if ( input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // src/Fibitos.g:95:19: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
            loop22:
            do {
                int alt22=2;
                int LA22_0 = input.LA(1);

                if ( ((LA22_0>='0' && LA22_0<='9')||(LA22_0>='A' && LA22_0<='Z')||LA22_0=='_'||(LA22_0>='a' && LA22_0<='z')) ) {
                    alt22=1;
                }


                switch (alt22) {
            	case 1 :
            	    // src/Fibitos.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop22;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IDENT"

    // $ANTLR start "DOT"
    public final void mDOT() throws RecognitionException {
        try {
            int _type = DOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:99:2: ( '.' )
            // src/Fibitos.g:99:4: '.'
            {
            match('.'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOT"

    // $ANTLR start "ASSIGN"
    public final void mASSIGN() throws RecognitionException {
        try {
            int _type = ASSIGN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:101:2: ( '=' )
            // src/Fibitos.g:101:4: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ASSIGN"

    // $ANTLR start "COLON"
    public final void mCOLON() throws RecognitionException {
        try {
            int _type = COLON;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:103:2: ( ':' )
            // src/Fibitos.g:103:4: ':'
            {
            match(':'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COLON"

    // $ANTLR start "SEMI"
    public final void mSEMI() throws RecognitionException {
        try {
            int _type = SEMI;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:105:2: ( ';' )
            // src/Fibitos.g:105:4: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SEMI"

    // $ANTLR start "COMMA"
    public final void mCOMMA() throws RecognitionException {
        try {
            int _type = COMMA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:107:2: ( ',' )
            // src/Fibitos.g:107:4: ','
            {
            match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMMA"

    // $ANTLR start "EQUALS"
    public final void mEQUALS() throws RecognitionException {
        try {
            int _type = EQUALS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:109:2: ( '==' )
            // src/Fibitos.g:109:4: '=='
            {
            match("=="); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EQUALS"

    // $ANTLR start "LBRACKET"
    public final void mLBRACKET() throws RecognitionException {
        try {
            int _type = LBRACKET;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:111:2: ( '[' )
            // src/Fibitos.g:111:4: '['
            {
            match('['); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LBRACKET"

    // $ANTLR start "RBRACKET"
    public final void mRBRACKET() throws RecognitionException {
        try {
            int _type = RBRACKET;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:113:2: ( ']' )
            // src/Fibitos.g:113:4: ']'
            {
            match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RBRACKET"

    // $ANTLR start "LBRACE"
    public final void mLBRACE() throws RecognitionException {
        try {
            int _type = LBRACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:115:2: ( '{' )
            // src/Fibitos.g:115:4: '{'
            {
            match('{'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LBRACE"

    // $ANTLR start "RBRACE"
    public final void mRBRACE() throws RecognitionException {
        try {
            int _type = RBRACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:117:2: ( '}' )
            // src/Fibitos.g:117:4: '}'
            {
            match('}'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RBRACE"

    // $ANTLR start "DOTDOT"
    public final void mDOTDOT() throws RecognitionException {
        try {
            int _type = DOTDOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:119:2: ( '..' )
            // src/Fibitos.g:119:4: '..'
            {
            match(".."); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOTDOT"

    // $ANTLR start "LPAREN"
    public final void mLPAREN() throws RecognitionException {
        try {
            int _type = LPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:121:2: ( '(' )
            // src/Fibitos.g:121:4: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LPAREN"

    // $ANTLR start "RPAREN"
    public final void mRPAREN() throws RecognitionException {
        try {
            int _type = RPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:123:2: ( ')' )
            // src/Fibitos.g:123:4: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RPAREN"

    // $ANTLR start "NOT_EQUALS"
    public final void mNOT_EQUALS() throws RecognitionException {
        try {
            int _type = NOT_EQUALS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:125:2: ( '!=' )
            // src/Fibitos.g:125:4: '!='
            {
            match("!="); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NOT_EQUALS"

    // $ANTLR start "LTE"
    public final void mLTE() throws RecognitionException {
        try {
            int _type = LTE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:127:2: ( '<=' )
            // src/Fibitos.g:127:4: '<='
            {
            match("<="); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LTE"

    // $ANTLR start "LT"
    public final void mLT() throws RecognitionException {
        try {
            int _type = LT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:130:2: ( '<' )
            // src/Fibitos.g:130:4: '<'
            {
            match('<'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LT"

    // $ANTLR start "GTE"
    public final void mGTE() throws RecognitionException {
        try {
            int _type = GTE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:134:2: ( '>=' )
            // src/Fibitos.g:134:4: '>='
            {
            match(">="); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "GTE"

    // $ANTLR start "GT"
    public final void mGT() throws RecognitionException {
        try {
            int _type = GT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:138:2: ( '>' )
            // src/Fibitos.g:138:4: '>'
            {
            match('>'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "GT"

    // $ANTLR start "PLUS"
    public final void mPLUS() throws RecognitionException {
        try {
            int _type = PLUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:142:2: ( '+' )
            // src/Fibitos.g:142:4: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PLUS"

    // $ANTLR start "MINUS"
    public final void mMINUS() throws RecognitionException {
        try {
            int _type = MINUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:144:2: ( '-' )
            // src/Fibitos.g:144:4: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MINUS"

    // $ANTLR start "TIMES"
    public final void mTIMES() throws RecognitionException {
        try {
            int _type = TIMES;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:146:2: ( '*' )
            // src/Fibitos.g:146:4: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TIMES"

    // $ANTLR start "DIV"
    public final void mDIV() throws RecognitionException {
        try {
            int _type = DIV;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:148:2: ( '/' )
            // src/Fibitos.g:148:4: '/'
            {
            match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DIV"

    // $ANTLR start "MOD"
    public final void mMOD() throws RecognitionException {
        try {
            int _type = MOD;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/Fibitos.g:150:2: ( '%' )
            // src/Fibitos.g:150:4: '%'
            {
            match('%'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MOD"

    public void mTokens() throws RecognitionException {
        // src/Fibitos.g:1:8: ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | COMMENT | LINE_COMMENT | WS | INTLIT | DOUBLELIT | CHARLIT | STRINGLIT | CLASS_IDENT | IDENT | DOT | ASSIGN | COLON | SEMI | COMMA | EQUALS | LBRACKET | RBRACKET | LBRACE | RBRACE | DOTDOT | LPAREN | RPAREN | NOT_EQUALS | LTE | LT | GTE | GT | PLUS | MINUS | TIMES | DIV | MOD )
        int alt23=48;
        alt23 = dfa23.predict(input);
        switch (alt23) {
            case 1 :
                // src/Fibitos.g:1:10: T__39
                {
                mT__39(); 

                }
                break;
            case 2 :
                // src/Fibitos.g:1:16: T__40
                {
                mT__40(); 

                }
                break;
            case 3 :
                // src/Fibitos.g:1:22: T__41
                {
                mT__41(); 

                }
                break;
            case 4 :
                // src/Fibitos.g:1:28: T__42
                {
                mT__42(); 

                }
                break;
            case 5 :
                // src/Fibitos.g:1:34: T__43
                {
                mT__43(); 

                }
                break;
            case 6 :
                // src/Fibitos.g:1:40: T__44
                {
                mT__44(); 

                }
                break;
            case 7 :
                // src/Fibitos.g:1:46: T__45
                {
                mT__45(); 

                }
                break;
            case 8 :
                // src/Fibitos.g:1:52: T__46
                {
                mT__46(); 

                }
                break;
            case 9 :
                // src/Fibitos.g:1:58: T__47
                {
                mT__47(); 

                }
                break;
            case 10 :
                // src/Fibitos.g:1:64: T__48
                {
                mT__48(); 

                }
                break;
            case 11 :
                // src/Fibitos.g:1:70: T__49
                {
                mT__49(); 

                }
                break;
            case 12 :
                // src/Fibitos.g:1:76: T__50
                {
                mT__50(); 

                }
                break;
            case 13 :
                // src/Fibitos.g:1:82: T__51
                {
                mT__51(); 

                }
                break;
            case 14 :
                // src/Fibitos.g:1:88: T__52
                {
                mT__52(); 

                }
                break;
            case 15 :
                // src/Fibitos.g:1:94: T__53
                {
                mT__53(); 

                }
                break;
            case 16 :
                // src/Fibitos.g:1:100: T__54
                {
                mT__54(); 

                }
                break;
            case 17 :
                // src/Fibitos.g:1:106: COMMENT
                {
                mCOMMENT(); 

                }
                break;
            case 18 :
                // src/Fibitos.g:1:114: LINE_COMMENT
                {
                mLINE_COMMENT(); 

                }
                break;
            case 19 :
                // src/Fibitos.g:1:127: WS
                {
                mWS(); 

                }
                break;
            case 20 :
                // src/Fibitos.g:1:130: INTLIT
                {
                mINTLIT(); 

                }
                break;
            case 21 :
                // src/Fibitos.g:1:137: DOUBLELIT
                {
                mDOUBLELIT(); 

                }
                break;
            case 22 :
                // src/Fibitos.g:1:147: CHARLIT
                {
                mCHARLIT(); 

                }
                break;
            case 23 :
                // src/Fibitos.g:1:155: STRINGLIT
                {
                mSTRINGLIT(); 

                }
                break;
            case 24 :
                // src/Fibitos.g:1:165: CLASS_IDENT
                {
                mCLASS_IDENT(); 

                }
                break;
            case 25 :
                // src/Fibitos.g:1:177: IDENT
                {
                mIDENT(); 

                }
                break;
            case 26 :
                // src/Fibitos.g:1:183: DOT
                {
                mDOT(); 

                }
                break;
            case 27 :
                // src/Fibitos.g:1:187: ASSIGN
                {
                mASSIGN(); 

                }
                break;
            case 28 :
                // src/Fibitos.g:1:194: COLON
                {
                mCOLON(); 

                }
                break;
            case 29 :
                // src/Fibitos.g:1:200: SEMI
                {
                mSEMI(); 

                }
                break;
            case 30 :
                // src/Fibitos.g:1:205: COMMA
                {
                mCOMMA(); 

                }
                break;
            case 31 :
                // src/Fibitos.g:1:211: EQUALS
                {
                mEQUALS(); 

                }
                break;
            case 32 :
                // src/Fibitos.g:1:218: LBRACKET
                {
                mLBRACKET(); 

                }
                break;
            case 33 :
                // src/Fibitos.g:1:227: RBRACKET
                {
                mRBRACKET(); 

                }
                break;
            case 34 :
                // src/Fibitos.g:1:236: LBRACE
                {
                mLBRACE(); 

                }
                break;
            case 35 :
                // src/Fibitos.g:1:243: RBRACE
                {
                mRBRACE(); 

                }
                break;
            case 36 :
                // src/Fibitos.g:1:250: DOTDOT
                {
                mDOTDOT(); 

                }
                break;
            case 37 :
                // src/Fibitos.g:1:257: LPAREN
                {
                mLPAREN(); 

                }
                break;
            case 38 :
                // src/Fibitos.g:1:264: RPAREN
                {
                mRPAREN(); 

                }
                break;
            case 39 :
                // src/Fibitos.g:1:271: NOT_EQUALS
                {
                mNOT_EQUALS(); 

                }
                break;
            case 40 :
                // src/Fibitos.g:1:282: LTE
                {
                mLTE(); 

                }
                break;
            case 41 :
                // src/Fibitos.g:1:286: LT
                {
                mLT(); 

                }
                break;
            case 42 :
                // src/Fibitos.g:1:289: GTE
                {
                mGTE(); 

                }
                break;
            case 43 :
                // src/Fibitos.g:1:293: GT
                {
                mGT(); 

                }
                break;
            case 44 :
                // src/Fibitos.g:1:296: PLUS
                {
                mPLUS(); 

                }
                break;
            case 45 :
                // src/Fibitos.g:1:301: MINUS
                {
                mMINUS(); 

                }
                break;
            case 46 :
                // src/Fibitos.g:1:307: TIMES
                {
                mTIMES(); 

                }
                break;
            case 47 :
                // src/Fibitos.g:1:313: DIV
                {
                mDIV(); 

                }
                break;
            case 48 :
                // src/Fibitos.g:1:317: MOD
                {
                mMOD(); 

                }
                break;

        }

    }


    protected DFA17 dfa17 = new DFA17(this);
    protected DFA23 dfa23 = new DFA23(this);
    static final String DFA17_eotS =
        "\6\uffff";
    static final String DFA17_eofS =
        "\6\uffff";
    static final String DFA17_minS =
        "\2\56\4\uffff";
    static final String DFA17_maxS =
        "\1\71\1\146\4\uffff";
    static final String DFA17_acceptS =
        "\2\uffff\1\2\1\3\1\1\1\4";
    static final String DFA17_specialS =
        "\6\uffff}>";
    static final String[] DFA17_transitionS = {
            "\1\2\1\uffff\12\1",
            "\1\4\1\uffff\12\1\12\uffff\1\5\1\3\1\5\35\uffff\1\5\1\3\1"+
            "\5",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
    static final short[] DFA17_eof = DFA.unpackEncodedString(DFA17_eofS);
    static final char[] DFA17_min = DFA.unpackEncodedStringToUnsignedChars(DFA17_minS);
    static final char[] DFA17_max = DFA.unpackEncodedStringToUnsignedChars(DFA17_maxS);
    static final short[] DFA17_accept = DFA.unpackEncodedString(DFA17_acceptS);
    static final short[] DFA17_special = DFA.unpackEncodedString(DFA17_specialS);
    static final short[][] DFA17_transition;

    static {
        int numStates = DFA17_transitionS.length;
        DFA17_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA17_transition[i] = DFA.unpackEncodedString(DFA17_transitionS[i]);
        }
    }

    class DFA17 extends DFA {

        public DFA17(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 17;
            this.eot = DFA17_eot;
            this.eof = DFA17_eof;
            this.min = DFA17_min;
            this.max = DFA17_max;
            this.accept = DFA17_accept;
            this.special = DFA17_special;
            this.transition = DFA17_transition;
        }
        public String getDescription() {
            return "67:1: DOUBLELIT : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( DoubleTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( DoubleTypeSuffix )? | ( '0' .. '9' )+ Exponent ( DoubleTypeSuffix )? | ( '0' .. '9' )+ DoubleTypeSuffix );";
        }
    }
    static final String DFA23_eotS =
        "\1\uffff\10\27\2\uffff\1\63\3\27\1\71\1\uffff\2\73\1\76\4\uffff"+
        "\1\100\11\uffff\1\102\1\104\4\uffff\3\27\1\110\6\27\2\uffff\3\27"+
        "\5\uffff\1\73\10\uffff\2\27\1\124\1\uffff\6\27\1\133\3\27\1\137"+
        "\1\uffff\1\27\1\141\1\27\1\143\2\27\1\uffff\1\146\1\27\1\150\1\uffff"+
        "\1\27\1\uffff\1\27\1\uffff\1\153\1\27\1\uffff\1\155\1\uffff\1\156"+
        "\1\157\1\uffff\1\160\4\uffff";
    static final String DFA23_eofS =
        "\161\uffff";
    static final String DFA23_minS =
        "\1\11\1\150\1\146\2\157\1\164\1\154\1\150\1\145\2\uffff\1\75\1"+
        "\145\1\162\1\141\1\52\1\uffff\3\56\4\uffff\1\75\11\uffff\2\75\4"+
        "\uffff\2\141\1\164\1\60\1\165\1\157\1\162\1\163\1\151\1\164\2\uffff"+
        "\1\167\1\165\1\154\5\uffff\1\56\10\uffff\1\163\1\162\1\60\1\uffff"+
        "\1\142\1\154\1\151\1\145\1\154\1\165\1\60\1\145\2\163\1\60\1\uffff"+
        "\1\154\1\60\1\156\1\60\1\145\1\162\1\uffff\1\60\1\145\1\60\1\uffff"+
        "\1\145\1\uffff\1\147\1\uffff\1\60\1\156\1\uffff\1\60\1\uffff\2\60"+
        "\1\uffff\1\60\4\uffff";
    static final String DFA23_maxS =
        "\1\175\1\154\1\156\2\157\1\164\1\154\1\150\1\145\2\uffff\1\75\1"+
        "\145\1\162\1\141\1\57\1\uffff\2\146\1\71\4\uffff\1\75\11\uffff\2"+
        "\75\4\uffff\2\141\1\164\1\172\1\165\1\157\1\162\1\163\1\151\1\164"+
        "\2\uffff\1\167\1\165\1\154\5\uffff\1\146\10\uffff\1\163\1\162\1"+
        "\172\1\uffff\1\142\1\154\1\151\1\145\1\154\1\165\1\172\1\145\2\163"+
        "\1\172\1\uffff\1\154\1\172\1\156\1\172\1\145\1\162\1\uffff\1\172"+
        "\1\145\1\172\1\uffff\1\145\1\uffff\1\147\1\uffff\1\172\1\156\1\uffff"+
        "\1\172\1\uffff\2\172\1\uffff\1\172\4\uffff";
    static final String DFA23_acceptS =
        "\11\uffff\1\13\1\14\5\uffff\1\23\3\uffff\1\26\1\27\1\30\1\31\1"+
        "\uffff\1\34\1\35\1\36\1\40\1\41\1\42\1\43\1\45\1\46\2\uffff\1\54"+
        "\1\55\1\56\1\60\12\uffff\1\47\1\15\3\uffff\1\21\1\22\1\57\1\25\1"+
        "\24\1\uffff\1\44\1\32\1\37\1\33\1\50\1\51\1\52\1\53\3\uffff\1\7"+
        "\13\uffff\1\2\6\uffff\1\16\3\uffff\1\4\1\uffff\1\5\1\uffff\1\10"+
        "\2\uffff\1\17\1\uffff\1\1\2\uffff\1\11\1\uffff\1\20\1\3\1\6\1\12";
    static final String DFA23_specialS =
        "\161\uffff}>";
    static final String[] DFA23_transitionS = {
            "\2\20\1\uffff\2\20\22\uffff\1\20\1\13\1\25\2\uffff\1\47\1\12"+
            "\1\24\1\40\1\41\1\46\1\44\1\33\1\45\1\23\1\17\1\21\11\22\1\31"+
            "\1\32\1\42\1\30\1\43\2\uffff\32\26\1\34\1\uffff\1\35\1\uffff"+
            "\1\27\1\uffff\1\27\1\4\1\1\1\3\1\6\1\16\2\27\1\2\4\27\1\14\3"+
            "\27\1\10\1\5\1\15\2\27\1\7\3\27\1\36\1\11\1\37",
            "\1\51\3\uffff\1\50",
            "\1\53\7\uffff\1\52",
            "\1\54",
            "\1\55",
            "\1\56",
            "\1\57",
            "\1\60",
            "\1\61",
            "",
            "",
            "\1\62",
            "\1\64",
            "\1\65",
            "\1\66",
            "\1\67\4\uffff\1\70",
            "",
            "\1\72\1\uffff\12\72\12\uffff\3\72\35\uffff\3\72",
            "\1\72\1\uffff\12\74\12\uffff\3\72\35\uffff\3\72",
            "\1\75\1\uffff\12\72",
            "",
            "",
            "",
            "",
            "\1\77",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\101",
            "\1\103",
            "",
            "",
            "",
            "",
            "\1\105",
            "\1\106",
            "\1\107",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\1\111",
            "\1\112",
            "\1\113",
            "\1\114",
            "\1\115",
            "\1\116",
            "",
            "",
            "\1\117",
            "\1\120",
            "\1\121",
            "",
            "",
            "",
            "",
            "",
            "\1\72\1\uffff\12\74\12\uffff\3\72\35\uffff\3\72",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\122",
            "\1\123",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "",
            "\1\125",
            "\1\126",
            "\1\127",
            "\1\130",
            "\1\131",
            "\1\132",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\1\134",
            "\1\135",
            "\1\136",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "",
            "\1\140",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\1\142",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\1\144",
            "\1\145",
            "",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\1\147",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "",
            "\1\151",
            "",
            "\1\152",
            "",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\1\154",
            "",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "",
            "\12\27\7\uffff\32\27\4\uffff\1\27\1\uffff\32\27",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA23_eot = DFA.unpackEncodedString(DFA23_eotS);
    static final short[] DFA23_eof = DFA.unpackEncodedString(DFA23_eofS);
    static final char[] DFA23_min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS);
    static final char[] DFA23_max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS);
    static final short[] DFA23_accept = DFA.unpackEncodedString(DFA23_acceptS);
    static final short[] DFA23_special = DFA.unpackEncodedString(DFA23_specialS);
    static final short[][] DFA23_transition;

    static {
        int numStates = DFA23_transitionS.length;
        DFA23_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA23_transition[i] = DFA.unpackEncodedString(DFA23_transitionS[i]);
        }
    }

    class DFA23 extends DFA {

        public DFA23(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 23;
            this.eot = DFA23_eot;
            this.eof = DFA23_eof;
            this.min = DFA23_min;
            this.max = DFA23_max;
            this.accept = DFA23_accept;
            this.special = DFA23_special;
            this.transition = DFA23_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | COMMENT | LINE_COMMENT | WS | INTLIT | DOUBLELIT | CHARLIT | STRINGLIT | CLASS_IDENT | IDENT | DOT | ASSIGN | COLON | SEMI | COMMA | EQUALS | LBRACKET | RBRACKET | LBRACE | RBRACE | DOTDOT | LPAREN | RPAREN | NOT_EQUALS | LTE | LT | GTE | GT | PLUS | MINUS | TIMES | DIV | MOD );";
        }
    }
 

}